home *** CD-ROM | disk | FTP | other *** search
- @if-using not(ocl-file-overwdel)
- @use (ocl-file-overwdel)
- ;OCL{{{}}}
- ;OCL{{{ reference descriptoin
- @if-using ( FUN-REFERENCE ) ; 1 ;
- Change the behaviour of the function delete-previous-character (and
- delete-character, if library delchar is already read) in overwrite
- mode.
-
- Instead of deleting the character, it will be overwritten by a single
- space character. The original functions can be accessed by
- `raw-delete-previous-character' (and `raw-delete-character').
- @fi
- ;OCL}}}
- ;OCL{{{ variables
- ( defvar ( overwdel-x ) )
- ;OCL}}}
- ;OCL{{{ redefine delete-previous-character
- ;OCL{{{ reference
- @if-using ( FUN-REFERENCE ) ; 2 ; overwpdel
- ;OCL{{{ @overwd-mac-ref delete-previous-character
- Change the default behaviour, if mode overwrite is active. In this
- case, the character left from the cursor will be replaced by a space
- and the cursor is moved to it.
- ;OCL}}}
- @fi
- ;OCL}}}
- ( defmac raw-delete-previous-character ( delete-previous-character ) )
- ( undeclare ( delete-previous-character ) )
- ( deffun delete-previous-character
- ( if and(test-overwrite not(in-prompt))
- ( set overwdel-x store-pos
- backward-character
- if <>(store-pos overwdel-x)
- ( " ;
- set overwdel-x -(overwdel-x 1)
- goto overwdel-x
- )
- fi
- )
- else
- ( raw-delete-previous-character )
- fi
- )
- )
- ;OCL}}}
- @if-using (ocl-file-delchar)
- ;OCL{{{ redefine delete-character
- ( defmac raw-delete-character ( delete-character ) )
- ( undeclare ( delete-character ) )
- ( deffun delete-character
- ( if and(test-overwrite not(in-prompt))
- ( set overwdel-x store-pos
- " ;
- goto overwdel-x
- )
- else
- ( raw-delete-character )
- fi
- )
- )
- ;OCL}}}
- @fi
- ;OCL{{{ undeclares
- ( undeclare ( overwdel-x ) )
- ;OCL}}}
- @fi
-